<!--
 
 This file is part of EspGrid.  EspGrid is (c) 2012,2013 by David Ogborn.
 
 EspGrid is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
 the Free Software Foundation, either version 3 of the License, or
 (at your option) any later version.
 
 EspGrid is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 GNU General Public License for more details.
 
 You should have received a copy of the GNU General Public License
 along with EspGrid.  If not, see <http://www.gnu.org/licenses/>.
 
 -->

<html>
    <head>
        <title>EspGrid Version History</title>
        <meta name="keywords" content="version history changelog changes"/>
    </head>
    <body>
        
        <a name="history"></a>
        <h1>EspGrid Version History</h1>
        
        <div>v0.49 Linux/GNUstep port; request-driven messages to flexible host/ports; all UDP sent from meaningful ports; cross-thread notification mechanism for chat/log posting; general refactoring</div>
        <div>v0.48 critical bug fix in mode 1 clock synchronization</div>
        <div>v0.47 request-driven /clock/offset/* /esp/tempo/* messages (cf. TOPLAP discussions), EspClock for SuperCollider</div>
        <div>v0.46 local and remote ports for EspBridge are configurable (in GUI and via OSC)</div>
        <div>v0.45 changes to public protocol /esp/clock and /esp/beat messages, command line help, complete OSC controls</div>
        <div>v0.44 basic WAN bridge in private protocol, initial command line edition "espgridd"</div>
        <div>v0.43 addition of continuous (slow) "/esp/clock [adjustedTime] [adjustment]" messages to public protocol</div>
        <div>v0.42 reorganization of EspClock algorithms, flux measurement, plus other bug fixes</div>
        <div>v0.41 various bug fixes - improved stability relative to 0.40</div>
        <div>v0.40 reference broadcast synchronization algorithm added, plus other optimizations</div>
        <div>v0.39 addition of system for switching synchronization algorithms, race-only algorithm added</div>
        <div>v0.37-38 experiments with different EspClock algorithms</div>
        <div>v0.36 using moving average of specific latency in EspClock/EspPeerList, lock mechanism in EspClock (constrains sync adjustments to 1ms or less), more protection against corrupt transmissions, expanded unit testing</div>
        <div>v0.35 fixed nasty bug in EspClock, reduced CPU load from EspQueue, reduced bandwidth of EspKeyValueController</div>
        <div>v0.34 reorganization of code sharing to support long (>MTU) code fragments; established unit testing for some classes</div>
        <div>v0.33 various protections against malformed messages in EspOsc</div>
        <div>v0.32 added integrated help system and app icon (the latter contributed by Kearon Roy Taylor)</div>
        <div>v0.31 broadcast of immediate and scheduled arbitrary OSC messages (with or without timestamps included in the messages) (EspMessage/EspQueue)</div>
        <div>v0.30 various small changes: clock system only warns of mismatched versions once, peers are deleted when no beacon for 2 mins, OSC control of EspBeat propagates over network properly</div>
        <div>v0.29 fixed oversight in 0.28 that broke code sharing system</div>
        <div>v0.28 refinements to code in EspBeat.m (including smooth on-the-fly tempo changes)</div>
        <div>v0.27 designated port for PD; protect against divide by 0 in tempo; fixed bug where incomplete "custom application connection" in Preferences crashes app</div>
        <div>v0.26 shift to tab view in Mac OS X GUI, implementation of log window separate from chat window</div>
        <div>v0.25 EspCodeShare: all entries requestable/copyable, system to autocopy requested deliveries</div>
        <div>v0.24 EspPeerList keeps track of how long since last communication with each peer, updates status</div>
        <div>v0.23 ability to pick out specific pieces of shared code and grab them in EspCodeShare</div>
        <div>v0.22 major overhaul of EspKeyValueController; first iPad version; begun to abandon Cocoa bindings</div>
        <div>v0.21 EspPost system added for better handling of different types of "log" messages</div>
        <div>v0.20 clock algorithm adjusts for peer-specific latency; other small changes</div>
        <div>v0.19 name change to EspGrid, peer list includes self info</div>
        <div>v0.18 OSC backdoor for hacked miniAudicle (add/replace shred in miniAudicle shares code)</div>
        <div>v0.17 OSC control of EspBeat and OSC "back door" for EspChat</div>
        <div>v0.16 basic EspCodeShare mechanisms via clipboard; shared control of EspBeat cyclelength</div>
        <div>v0.15 crude shared control of EspBeat on the basis of EspKeyValueController</div>
        <div>v0.14 addition of EspKeyValueController (network sharing of variables, KVC/KVO compliant)</div>
        <div>v0.13 basic EspBeat completed without user/net control</div>
        <div>v0.12 removed Automatic Reference Counting (ARC) and fixed compatibility with OS X 10.6</div>
        <div>v0.11 beacon is transmitted 19 times in first 5 seconds (every 250ms) before reducing to 5s period</div>
        <div>v0.10 replaced public domain AsyncUdpSocket with new EspSocket and UdpSend classes</div>
        <div>v0.09 added first version of UDP burst system</div>
        <div>v0.08 added Preferences panel</div>
        <div>v0.07 basic EspChat working in GUI app</div>
        <div>v0.06 move to app architecture - basic EspClock working in GUI app</div>
        <div>v0.05 Improvements to espBeat [formerly espPulse]</div>
        <div>v0.04 Improvements to espPulse</div>
        <div>v0.03 Added espPulse</div>
        <div>v0.02 Added espColourOrgan</div>
        <div>v0.01 First version of espChat</div>

    </body>
</html>

